//
//  String+.swift
//  正则表达式
//
//  Created by 叶竞泽 on 2017/2/2.
//  Copyright © 2017年 JingZe. All rights reserved.
//

import Foundation

extension String {
    
    // 创建正则表达式
    // 索引:
    // 0: 和匹配方案完全一致的字符串
    // 1: 第一个圆括号中的内容
    // 2: 第二个圆括号中的内容
    // 索引从左到右顺序递增
    // 对于模糊匹配,如果关心的内容,就使用(.*?),然后通过索引可以获取结果,如果不关心,就使用.*?,可以匹配任意内容
    /// pattern - 匹配方案,常说的正则表达式就是pattern
    
    /// 从当前字符串中提取链接和文本
    ///
    /// - Returns: 匹配的字符串
    func ss_href() -> (link: String, text: String)? {
        
        // 1.创建正则表达式
        let patten = "<a href=\"(.*?)\".*?\">(.*?)</a>"
        
        guard let regx = try? NSRegularExpression(pattern: patten, options: []) else {
            return nil
        }
        
        // 2.获取匹配项
        guard let result = regx.firstMatch(in: self, options: [], range: NSRange(location: 0, length: self.characters.count)) else {
            return nil
        }
        
        // 3.获取结果
        let link = (self as NSString).substring(with: result.rangeAt(1))
        let text = (self as NSString).substring(with: result.rangeAt(2))
        
        return (link, text)
    }
}
